<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 字符串 ->   获取和设置一段文本

    // 如何创建字符串?
    // (1)  字面量创建(值类型)
    // var str = "hello";
    // console.log(str, typeof str);  // "string"

    // (2) 构造函数创建(String)   => 对象
    // var str = new String("hello");
    // console.log(str, typeof str); // "object"

    // 虽然创建方式不一样,但是按数据特性划分 都属于字符串

    // var num = 100;
    // console.log(num.toString());  // 将其他类型转化为字符串 (不是创建字符串)

    // 对比number
    // var num = 1;
    // console.log(num, typeof num, num + 1);
    // var num = new Number(1)
    // console.log(num, typeof num, num + 1);


    // 字符串的特性:
    // 1. 有length属性 表长度 -> 也表示在字符串中字符的个数
    // 2. 可以通过下标取值,但是不能通过下标赋值(官方规定) => 字符串的所有方法都不能改变原字符串
    // 3. 可以被循环遍历  for   for...in  for...of

    var str = new String("hello world");
    console.log(str);

    console.log(str.length);

    // 取值
    // console.log(str[4]);
    // 赋值
    // str[4] = "O";
    // console.log(str);

    // 循环遍历
    // for   for...in  for...of

    // for (var i = 0; i < str.length; i++) {
    //     var item = str[i];
    //     console.log(item);
    // }

    // for (var i in str) {
    //     console.log(i, str[i]);
    // }

    // for (var char of str) {
    //     console.log(char);
    // }

</script>

</html>